/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package SysAguas.dao;

import SysAguas.modelo.Endereco;
import SysAguas.modelo.Hospede;
import SysAguas.modelo.Telefone;
import java.util.List;
 
/**
 *
 * @author Heitor
 */
public class DAOHospede extends DAOGenerico {

    public List<Hospede> getHospedesByName(String name) {

        List<Hospede> toReturn = null;
        String query = "select h from Hospede h where h.nome = ?1  ";
        toReturn = getLista(Hospede.class, query, name);
        System.out.println("\n\n" + toReturn.size() + "\n\n");
        return toReturn;
    }

    public List<Hospede> getHospedeByName(String nome, String sobrenome) {

        List<Hospede> toReturn = null;
        String query = "select h from Hospede h where h.nome = ?1 "
                + "and h.sobrenome =?2";
        toReturn = getLista(Hospede.class, query, nome, sobrenome);
        return toReturn;

    }
    /*
    public Integer cadastrarHospedeWithALL(Hospede h, Endereco end, Telefone... tel) {
    Integer idHospede = null;
    Integer idTelefone = null;
    Integer idCelular = null;
    Integer idEndereco = null;

    cadastrar(h);
    String queryHosp = "select h.id from Hospede h where h.nome = ?1 and h.sobrenome = ?2";
    idHospede = getIdOfTable(Hospede.class, queryHosp, h.getNome(), h.getSobrenome());

    cadastrar(end);
    String queryEnd = "select end.id from Endereco end where end.rua = ?1 and end.bairro = ?2 and end.cidade = ?3 ";
    idEndereco = getIdOfTable(Endereco.class, queryEnd, end.getRua(), end.getBairro(), end.getCidade());


    for (int i = 0; i < tel.length; i++) {
    cadastrar(tel[i]);

    }
    String querytel = "select tel.id from Telefone tel where tel.ddd = ?1 and tel.numero =?2";
    for(int i =0; i<tel.length;i++) {
    if (tel[i].getNumero().substring(3, 4).equals("9") || tel[i].getNumero().substring(3, 4).equals("8")) {

    idCelular = getIdOfTable(Telefone.class, querytel, tel[i]);

    }else{
    idTelefone = getIdOfTable(Telefone.class, querytel, tel[i]);
    }
    }




    return idHospede;




    }
     */

    public Integer cadastrarHospedeWithALL(Hospede h, Endereco end, Telefone... tel) {
        Integer id = null;

        h.setEnderecoH(end);
        end.setHospedeE(h);

        for (int i = 0; i < tel.length; i++) {
            h.addTelefone(tel[i]);
            tel[i].setHospede(h);

        }
        cadastrar(h);
        String queryHosp = "select h.id from Hospede h where h.nome = ?1 and h.sobrenome = ?2";
        id = getIdOfTable(Hospede.class, queryHosp, h.getNome(), h.getSobrenome());





        return id;

    }
}

